//
//  Heap.h
//  对堆排序的二次实现
//
//  Created by Yan Zihao on 2024/11/25.
//
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<stdbool.h>

typedef int HPDataType;

typedef struct Heap
{
    HPDataType *_a;
    int _size;
    int _capacity;
}Heap;

void HeapInit(Heap* php);
void HeapDestory(Heap* php);

void Swap(HPDataType* a, HPDataType* b);

void AdjustUp(HPDataType* a, int child);

void HeapPush(Heap* php, HPDataType x);

void HeapPop(Heap* php);

void AdjustDown(HPDataType* a, int parent,int n);

